/*
 *  directa.h
 */

#ifndef __DIRECTA_H__
#define __DIRECTA_H__

/* definiciones. */

#define CHAR		1
#define INT		2
#define LONG		3
#define FLOAT		4
#define DOUBLE		5
#define UNSIGNED	0x80 

#define READ 			1
#define WRITE 			2
#define READ_WRITE		3 /* READ | WRITE */		
#define APPEND		 	4

#undef NULL
#undef EOF

#define OK				 0							
#define NULL				-1	
#define ERROR				-2	
#define EOF				-3	
#define EXISTE				-4	
#define NO_EXISTE			-5	
#define EXISTE_INDICE			-6	
#define NO_EXISTE_INDICE		-7	
#define ARCHIVO_LLENO			-8	
#define ES_PRIM				-9	


typedef struct {
	const char* nombre;
	int 	    tipo;
	int 	    longitud; 
}campo;


/* prototipo de las primitivas. */
int D_CREATE (const char* nombre, const campo *reg, const campo *clave, int max_reg);
int D_OPEN   (const char* nombre, int modo);
int D_CLOSE  (int handler);
int D_READ   (int handler, void* reg);
int D_WRITE  (int handler, const void* reg);
int D_UPDATE (int handler, const void* reg);
int D_DELETE (int handler, const void* reg);
int D_DESTROY(const char* nombre);


#endif
